[Grunt]grunt-ec2でGruntからEC2を操作する
Gruntでec2を操作する
aws-cliとは、コマンドラインからAWSを操作することができるツールです。 これを使用すると、ちょっとしたAWS作業を簡単に行ったり自動化したりできます。 今回はこのaws-cliと連携してGruntでec2を操作するためのGruntプラグインを紹介します。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.9
- Node.js : v0.10.21
セットアップ
Gruntが入ってない場合はgrunt-cliをインストールします。 また、aws-cliも必要なのでpipでインストールしておきましょう。
% npm install -g grunt-cli(Gruntをインストールしてなければ) % mkdir my-grunt-ec2 && cd my-grunt-ec2 % npm install % npm install --save-dev grunt-ec2 % sudo easy_install pip(pipをインストールしてなければ) % sudo pip install awscli --upgrade(aws-cliをインストールしてなければ)
次に、aws.jsonという名前でAWSの認証情報を記述したファイルを作成しておきます。
{ "AWS_ACCESS_KEY_ID": "<アクセスキー>", "AWS_SECRET_ACCESS_KEY": "<シークレットキー>", "AWS_SECURITY_GROUP": "<セキュリティグループ>", "AWS_DEFAULT_REGION":"<リージョン >" }
そして、Gruntfile.jsを次のように記述しましょう。
module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), ec2: 'aws.json' }); grunt.loadNpmTasks('grunt-ec2'); };
上記Gruntfile.jsを記述したら、gruntコマンドを実行してみましょう。 下記のようにec2_list:allコマンドを実行すると、ec2インスタンス情報が表示されます。
% grunt ec2_list:all { "Reservations": [ { "OwnerId": "xxxxxxx", "ReservationId": "r-xxxxxxx", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" ・ ・
このように、grunt-ec2ではここにあるようにConfigurationとTaskを組み合わせて実行します。 Taskはec2の起動/シャットダウンやpm2関連の動作、nginx関連の動作を行うこともできます。 多数のTaskが用意されているので、確認してみてください。